﻿//#include <iostream>
//using  namespace std;
//int main()
//{
//    char arr[100] = { 0 };
//    char* p = arr;
//    int count = 0; int count1 = 0;
//    //cin >> arr;默认空格、回车、制表符为 “分隔符，会导致只读了一半
//    //cin.getline(字符数组名, 数组长度)是专门用于读取含空格的字符串的函数
//    cin.getline(arr, sizeof(arr));
//   // 第一种方法
//    for (int i = 0; p[i] != '\0'; i++)
//    {
//        count++;
//    }
//    //第2种方法
//    //while (*p != '\0')
//    //{
//    //    count1++;
//   //     p++;
//   // }
//    cout << count << endl;
//    return 0;
//}
//#include <iostream>
//#include <cstring>//头文件strlen
//using  namespace std;
//int main()
//{
//    char arr[100] = { 0 };
//    char* p = arr;
//    cin.getline(arr, sizeof(arr));
//    int l = strlen(arr);//输入arr后再计算
//    int n;
//    cin >> n;
//    for (int i =n-1;i<l;i++)
//    {
//        cout << *(p+i);
//    }
//    return 0;
//}
//#include <iostream>
//#include <cstring>//头文件strlen
//#include <iomanip>
//using  namespace std;
//int main()
//{
//	double arr[5][5];
//	double sum = 0;
//	for (int i = 0; i < 5; i++)
//	{
//		sum = 0;
//		for (int j = 0; j < 5; j++)
//		{
//			cin >> arr[i][j];
//			sum = sum + arr[i][j];
//			cout << arr[i][j] << " ";
//		}
//		cout << fixed << setprecision(1) << sum << endl;
//	}
//	return 0;
//}
#include <iostream>
#include <cstring>//头文件strlen
#include <iomanip>
using  namespace std;
int main()
{
	int n, m;
	cin >> n ;
	int arr1[10][10] = { 0 };
	int count = 0;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			count++;
			cout <<count <<" ";
		}
		cout << endl;
	}
	return 0;
}